package br.mil.cpp.modelo;

import java.util.Calendar;

import javax.validation.constraints.NotNull;
import javax.validation.constraints.Size;

public class AlunoBuilder {

	@NotNull
	@Size(min=2, max=50)
	private String nome;
	
	@Size(min=2, max=50)
	private String matricula;
	private String telefone;
	private Calendar dataNascimento;
	private Calendar dataInclusao;
	private String endereco;
	private Calendar dataExclusao;
	private String cidade;
	private String estado;
	private String cep;
	private String email;

	public AlunoBuilder nome(String nome) {
		this.nome = nome;
		return this;
	}

	public AlunoBuilder matricula(String matricula) {
		this.matricula = matricula;
		return this;
	}

	public AlunoBuilder telefone(String telefone) {
		this.telefone = telefone;
		return this;
	}

	public AlunoBuilder dataNascimento(Calendar dataNascimento) {
		this.dataNascimento = dataNascimento;
		return this;
	}

	public AlunoBuilder dataInclusao(Calendar dataInclusao) {
		this.dataInclusao = dataInclusao;
		return this;
	}

	public AlunoBuilder endereco(String endereco) {
		this.endereco = endereco;
		return this;
	}

	public AlunoBuilder dataExclusao(Calendar dataExclusao) {
		this.dataExclusao = dataExclusao;
		return this;
	}

	public AlunoBuilder cidade(String cidade) {
		this.cidade = cidade;
		return this;
	}

	public AlunoBuilder estado(String estado) {
		this.estado = estado;
		return this;
	}

	public AlunoBuilder cep(String cep) {
		this.cep = cep;
		return this;
	}

	public AlunoBuilder email(String email) {
		this.email = email;
		return this;
	}

	public Aluno criaAluno() {
		return new Aluno(nome, matricula, telefone, dataNascimento,
				dataInclusao, endereco, dataExclusao, cidade, estado, cep,
				email);
	}
}